2.2 การจ ดการตารางงานของซ พ ย ( CPU Scheduling ) - CPU Utilization 2.2.1 ช วงเวลากระทาของซ พ ย และ ของอ ปกรณ นาเข าก บส งออก ( CPU I/O Burst Cycle ) : Load Store Add Store Read from file Wait for I/O Store Increment index Write to file Wait for I/O CPU burst I/O burst CPU burst I/O burst : ร ปท 2.2.A ท แสดงถ งช วงเวลาการทางานของโปรเซสโดยซ พ ย และ อ ปกรณ นาเข าก บส งออก 2.2.2 การจ ดการตารางงานแบบสามารถแย งช วงเวลาได และแบบแย งช วงเวลาไม ได ( Preemptive and Nonpreemptive Scheduling ) 2.2.3 เกณฑ พ จารณาการจ ดการตารางงาน( Scheduling Criteria) - Best Algorithm 1. CPU Utilization 2. Throughput 3. Turnaround time 4. Waiting time 5. Response time 21
2.2.4 อ ลกอล ท มของจ ดการตารางงาน( Scheduling Algorithm) 1. การจ ดการตารางงานแบบมาก อนได ทาก อน ( First-Come, First-Served Scheduling : FCFS) - Ready queue ( First-in First -out queue : FIFO queue ) ต วอย างท 2.2.ก ถ าม โปรเซสท งหมดเข ามาถ ง Ready queue ท เวลา 0 ม ลล ว นาท (millisecond ) ตามลาด บค อ P 1, P 2, P 3 โดยม ข อม ลความต องการเวลาให ซ พ ย กระทา( burst time )ของแต ละโปรเซสเป นด งน และกาหนดหน วยเวลา เป นม ลล ว นาท ให ทาการจ ดการตารางงานแบบมาก อนได ทาก อน( First-Come, First-Served Scheduling ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time Process Burst time P 1 24 P 2 3 P 3 3 ว ธ ทา ทาการวาด แก นท ชาท ( Gantt chart ) ออกมาได ด งน P 1 P 2 P 3 0 24 27 30 จะได ว า P 1 ม Waiting time = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 24 ) = 24 ม ลล ว นาท P 2 ม Waiting time = 24 ม ลล ว นาท และม Turnaround time = ( 24 + 3 ) = 27 ม ลล ว นาท P 3 ม Waiting time = 27 ม ลล ว นาท และม Turnaround time = ( 27 + 3 ) = 30 ม ลล ว นาท ด งน น Average waiting time = ( 0 + 24 + 27 ) / 3 = 17 ม ลล ว นาท 2. การจ ดการตารางงานแบบมาท หล งได ทาก อน ( Last-In / First-out Scheduling ) ต วอย างท 2.2.ข กาหนดให ข อม ลเหม อนก บต วอย าง 2.2.ก เพ ยงแต ให ม การจ ดการตารางงานแบบมาท หล งได ทาก อน ( Last-In / First-out Scheduling ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time เช นก น P 3 P 2 P 1 0 3 6 30 22
จะได ว า P 1 ม Waiting time = 6 ม ลล ว นาท และม Turnaround time = ( 6 + 24 ) = 30 ม ลล ว นาท P 2 ม Waiting time = 3 ม ลล ว นาท และม Turnaround time = ( 3 + 3 ) = 6 ม ลล ว นาท P 3 ม Waiting time = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 3 ) = 3 ม ลล ว นาท ด งน น Average waiting time = ( 6 + 3 + 0 ) / 3 = 3 ม ลล ว นาท จะเห นว า จากข อม ลของโปรเซสของท งสองต วอย างข างต นเหม อนก น หากม การจ ดลาด บการเข าทา ของโปรเซสให แตกต างก น สามารถจะทาให ระบบม ผลของ Average waiting time เปล ยนแปลงไปได มากเช นก น 3. การจ ดการตารางงานแบบงานส นทาก อน ( Shortest Job First Scheduling : SJF ) ต วอย างท 2.2.ค ถ าม โปรเซสท งหมดเข ามาถ ง Ready queue แล วท เวลา 0 ม ลล ว นาท โดยม ข อม ลความต องการเวลาให ซ พ ย กระทาของแต ละโปรเซสเป นด งน และกาหนดหน วยเวลาเป นม ลล ว นาท ให ทาการจ ดการตารางงานแบบ งานส นทาก อน ( Shortest Job First Scheduling ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time Process Burst time P 1 6 P 2 8 P 3 7 P 4 3 P 4 P 1 P 3 P 2 0 3 9 16 24 จะได ว า P 1 P 2 P 3 P 4 ม Waiting time = 3 ม ลล ว นาท และม Turnaround time = ( 3 + 6 ) = 9 ม ลล ว นาท ม Waiting time = 16 ม ลล ว นาท และม Turnaround time = ( 16 + 8 ) = 24 ม ลล ว นาท ม Waiting time = 9 ม ลล ว นาท และม Turnaround time = ( 9 + 7 ) = 16 ม ลล ว นาท ม Waiting time = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 3 ) = 3 ม ลล ว นาท ด งน น Average waiting time = ( 3 + 16 + 9 + 0 ) / 4 = 7 ม ลล ว นาท 23
การจ ดการตารางงานแบบงานส นทาก อนน สามารถพ จารณาได เป น 2 แบบ ค อ แบบสามารถแย งช วง เวลาได และแบบแย งไม ได ด งน 3(1). การจ ดการตารางงานแบบเวลางานท เหล อส นทาก อน ( Shortest Remaining -Time First Scheduling ) - Preemptive SJF : ( arrival time ) ต วอย างท 2.2.ง ถ าม โปรเซสต างๆเข ามาถ ง Ready queue ตามเวลาท มาถ ง โดยม ข อม ลความต องการเวลาให ซ พ ย กระทาของแต ละโปรเซสเป นด งน และกาหนดหน วยเวลาเป นม ลล ว นาท ให ทาการจ ดการตารางงานแบบ เวลางานท เหล อส นทาก อน ( Shortest Remaining -Time First Scheduling ) หร อ Preemptive SJF น นเอง แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time Process Arrival time Burst time P 1 0 8 P 2 1 4 P 3 2 9 P 4 3 5 P 1 P 2 P 4 P 1 P 3 0 1 5 10 17 26 P 1 P 2 P 3 P 4 ม Waiting time = 10-1 = 9 ม ลล ว นาท และม Turnaround time = ( 9 + 8 ) = 17 ม ลล ว นาท ม Waiting time = 1-1 = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 4 ) = 4 ม ลล ว นาท ม Waiting time = 17-2 = 15 ม ลล ว นาท และม Turnaround time = ( 15 + 9 ) = 24 ม ลล ว นาท ม Waiting time = 5-3 = 2 ม ลล ว นาท และม Turnaround time = ( 2 + 5 ) = 7 ม ลล ว นาท ด งน น Average waiting time = ( 9 + 0 + 15 + 2 ) / 4 = 6.5 ม ลล ว นาท 24
3(2). การจ ดการตารางงานแบบแย งช วงเวลาไม ได ของงานส นทาก อน ( Non-preemptive Shortest Job First Scheduling : Non-preemptive SJF ) ต วอย างท 2.2.จ กาหนดให ข อม ลเหม อนก บต วอย าง 2.2.ง เพ ยงแต ให ม การจ ดการตารางงานแบบแย งช วงเวลาไม ได ของ งานส นทาก อน ( Non-preemptive SJF ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time เช นก น P 1 P 2 P 4 P 3 0 8 12 17 26 P 1 P 2 P 3 P 4 ม Waiting time = 0-0 = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 8 ) = 8 ม ลล ว นาท ม Waiting time = 8-1 = 7 ม ลล ว นาท และม Turnaround time = ( 7 + 4 ) = 11 ม ลล ว นาท ม Waiting time = 17-2 = 15 ม ลล ว นาท และม Turnaround time = ( 15 + 9 ) = 24 ม ลล ว นาท ม Waiting time = 12-3 = 9 ม ลล ว นาท และม Turnaround time = ( 9 + 5 ) = 14 ม ลล ว นาท ด งน น Average waiting time = ( 0 + 7 + 15 + 9 ) / 4 = 7.75 ม ลล ว นาท 25
4. การจ ดการตารางงานแบบงานยาวทาก อน ( Longest Job First Scheduling ) ต วอย างท 2.2.ฉ กาหนดให ข อม ลเหม อนก บต วอย าง 2.2.ค เพ ยงแต ให ม การจ ดการตารางงานแบบงานยาวทาก อน ( Longest Job First Scheduling ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time เช นก น P 2 P 3 P 1 P 4 0 8 15 21 24 จะได ว า P 1 P 2 P 3 P 4 ม Waiting time = 15 ม ลล ว นาท และม Turnaround time = ( 15 + 6 ) = 21 ม ลล ว นาท ม Waiting time = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 8 ) = 8 ม ลล ว นาท ม Waiting time = 8 ม ลล ว นาท และม Turnaround time = ( 8 + 7 ) = 15 ม ลล ว นาท ม Waiting time = 21 ม ลล ว นาท และม Turnaround time = ( 21 + 3 ) = 24 ม ลล ว นาท ด งน น Average waiting time = ( 15 + 0 + 8 + 21 ) / 4 = 11 ม ลล ว นาท 5. การจ ดการตารางงานแบบลาด บความสาค ญ ( Priority Scheduling ) - high priority -> low priority ( low number, high number) ต วอย างท 2.2.ช ถ าม โปรเซสท งหมดเข ามาถ ง Ready queue ท เวลา 0 ม ลล ว นาท ตามลาด บค อ P 1, P 2, P 3, P 4, P 5 โดยม ข อม ลความต องการเวลาให ซ พ ย กระทาและลาด บความสาค ญ(Priority)ของแต ละโปรเซสเป นด งน และกาหนด หน วยเวลาเป นม ลล ว นาท รวมท งให ใช เลขค าต า(low number)หมายถ งม ความสาค ญมาก ให ทาการจ ดการตาราง งานแบบลาด บความสาค ญ ( Priority Scheduling ) แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time Process Burst time Priority P 1 10 3 P 2 1 1 P 3 2 3 P 4 1 4 P 5 5 2 26
กาหนดว า ถ าลาด บความสาค ญเท าก นให พ จารณาเร ยงตามลาด บโปรเซสท เข ามา( หร อหมายเลขโปรเซส ) P 2 P 5 P 1 P 3 P 4 0 1 6 16 18 19 ได ผล ด งน P 1 ม Waiting time = 6 ม ลล ว นาท และม Turnaround time = ( 6 + 10 ) = 16 ม ลล ว นาท P 2 ม Waiting time = 0 ม ลล ว นาท และม Turnaround time = ( 0 + 1 ) = 1 ม ลล ว นาท P 3 ม Waiting time = 16 ม ลล ว นาท และม Turnaround time = ( 16 + 2 ) = 18 ม ลล ว นาท P 4 ม Waiting time = 18 ม ลล ว นาท และม Turnaround time = ( 18 + 1 ) = 19 ม ลล ว นาท P 5 ม Waiting time = 1 ม ลล ว นาท และม Turnaround time = ( 1 + 5 ) = 6 ม ลล ว นาท ด งน น Average waiting time = ( 6 + 0 + 16 + 18 + 1 ) / 5 = 8.2 ม ลล ว นาท 6. การจ ดการตารางงานแบบราวด โรบ น ( Round-Robin Scheduling : RR ) - time-sharing system : ( time quantum, time slice : 10-100 ม ลล ว นาท ) ( FCFS Scheduling, preemption ) ( ready queue : circular queue ) ต วอย างท 2.2.ซ ถ าม โปรเซสท งหมดเข ามาถ ง Ready queue ท เวลา 0 ม ลล ว นาท ตามลาด บค อ P 1, P 2, P 3 โดยม ข อม ล ความต องการเวลาให ซ พ ย กระทาของแต ละโปรเซสเป นด งน และกาหนดหน วยเวลาเป นม ลล ว นาท ให ทาการ จ ดการตารางงานแบบราวด โรบ น ( Round-Robin Scheduling : RR ) และเวลาควอนต มเท าก บ 4 ม ลล ว นาท แล วทาการคานวณหา Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time Process Burst time P 1 24 P 2 3 P 3 3 P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 10 14 18 22 26 30 27
จะได P 1 ม Waiting time = 0 +(10-4) = 6 ม ลล ว นาท และม Turnaround time = ( 6 + 24 ) = 30 ม ลล ว นาท P 2 ม Waiting time = 4 ม ลล ว นาท และม Turnaround time = ( 4 + 3 ) = 7 ม ลล ว นาท P 3 ม Waiting time = 7 ม ลล ว นาท และม Turnaround time = ( 7 + 3 ) = 10 ม ลล ว นาท ด งน น Average waiting time = ( 6 + 4 + 7 ) / 3 = 5.66 ม ลล ว นาท 7. การจ ดการตารางงานแบบค วหลายระด บ ( Multilevel Queue Scheduling ) 7(1). ม ค ว 2 ระด บ ค อ ฟอร กราวด ( forground ) และ แบ คกราวด ( background ) forground : interactive, RR background : batch, FCFS 7(2). ม ค ว 5 ระด บ ค อ ซ สเต ม(System ), อ นเตอร แอกท ฟ(Interactive), อ นเตอร แอกท ฟอ ด ท ง (Interactive editing ), แบ ตช ( Batch) และ สต วเด น( Student ) เป นการเพ มจานวนค วมากข นเพ อรองร บประเภทหร อล กษณะการทางานของโปรเซสให มากข น โดยเร ยงตามลาด บความสาค ญของโปรเซส ด งร ปท 2.2.C โดยแต ละโปรเซสก จะแยกก นเข าท ค วแตกต างก น 28
High priority Foreground low priority Background ร ปท 2.2.B ค วหลายระด บ แบบ 2 ระด บ Highest priority System processes Interactive processes Interactive editing processes Batch processes lowest priority Student processes ร ปท 2.2.C ค วหลายระด บ แบบ 5 ระด บ 29
8. การจ ดการตารางงานแบบค วป อนกล บหลายระด บ (Multilevel Feedback Queue Scheduling ) Quantum = 8 Quantum = 16 FCFS ร ปท 2.2.D ค วป อนกล บหลายระด บ 30
อ ลกอล ท มหล กต างๆท กล าวมาท งหมดของจ ดการตารางงาน ม ต วอย างของการคานวณโดยวาดใน ล กษณะของตารางเวลาการทางานของโปรเซสโดยซ พ ย แทนแก นชาต ท ด งน ต วอย างท 2..2.ฌ โปรเซส A, B,C,D, E ม ข อม ลให มาด งน แล วทาการจ ดตารางงาน(Scheduling)แบบ FCFS, SJF, SRTF ( หากโปรเซสท จะถ กเล อกม มากกว า 1 โปรเซส ให ใช หล กการของ FCFS เข าเสร มเพ อประกอบการ ต ดส นใจ ) โดยวาดในล กษณะของตารางเวลาการทางานของโปรเซสโดยซ พ ย แทนแก นชาต ท และคานวณหา ว า Finish time, Waiting time และ Turnaround time ของแต ละโปรเซส รวมท ง Average waiting time, Average turnaround time น ( กาหนดหน วยเวลาเป นม ลล ว นาท ) Process Arrival time Burst time A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 ว ธ ทา ทาการวาดตารางเวลาได ด งน 0 5 10 15 20 FCFS SJF SRTF A B C D E A B C D E A B C D E 31
แล วทาการคานวณค าต างๆได ด งผลตารางต อไปน Process A B C D E Average Scheduling Arrival time 0 2 4 6 8 Burst time 3 6 4 5 2 FCFS Finish time 3 9 13 18 20 Turnaround time 3 7 9 12 12 8.60 Wait time 0 1 5 7 10 4.60 SJF Finish time 3 9 15 20 11 Turnaround time 3 7 11 14 3 7.60 Wait time 0 1 7 9 1 3.60 SRTF Finish time 3 15 8 20 10 Turnaround time 3 13 4 14 2 7.20 Wait time 0 7 0 9 0 3.20 32